容器是云原生基礎設施的基石。它們改變了可擴展性和速度的游戲規(guī)則,但它們的流行也為現(xiàn)代企業(yè)帶來了容器安全挑戰(zhàn)。例如,最近 AWS Elastic Container Registry (ECR) 中的一個安全漏洞可能使威脅行為者能夠?qū)阂獯a注入其他用戶的容器映像。下面,我們將詳細了解什么是容器運行時安全、企業(yè)需要了解的五種運行時容器安全威脅,以及改善整體工作負載安全狀況的關鍵最佳實踐和工具。
什么是容器運行時安全?
容器運行時安全是一組工具和實踐,可保護容器從實例化到終止。它是容器安全和工作負載保護的一個子集,負責保護容器從實例化到終止發(fā)生的所有事情。例如,容器運行時安全處理掃描運行中的容器是否存在漏洞,而不是掃描明文源代碼。這意味著漏洞掃描器是運行時容器安全工具的一個示例,但SAST掃描器不是。
但是,容器運行時安全性并不是一個孤立的概念。除了容器本身之外,保護源代碼、Kubernetes (K8s)和基礎設施即代碼(IaC) 是提供深度防御的重要方面,這些方面使企業(yè)容器運行時安全工作取得成功。
企業(yè)需要了解的 5 大容器運行時安全威脅
以下五種容器運行時安全威脅可能會給運行容器工作負載的企業(yè)帶來重大風險。
未經(jīng)授權(quán)的容器部署:企業(yè)對手使用的 MITRE ATT&CK 技術(shù)列表中的Deploy Container (T1610)是容器安全威脅的一個很好的例子。使用這種技術(shù),攻擊者部署一個容器——例如使用 Docker 的創(chuàng)建和啟動命令——繞過安全控制并啟用漏洞利用。
錯誤配置和不安全配置:不安全配置是最常見的容器安全風險之一。例如,暴露不必要的網(wǎng)絡端口或硬編碼 API 密鑰的容器都是不安全配置的示例。
帶有惡意軟件的容器鏡像:當企業(yè)使用公共容器注冊表時,這種風險尤其普遍。威脅行為者可以將惡意軟件嵌入到容器鏡像中,然后將它們發(fā)布到公共注冊表中供企業(yè)使用。
權(quán)限升級攻擊:有多種權(quán)限升級攻擊可以導致攻擊者獲得對容器或底層主機的根訪問權(quán)限。這些攻擊通常始于利用不安全的配置或現(xiàn)有漏洞。
未修補的漏洞:未匹配的漏洞,如應用程序中的訪問控制錯誤,為威脅參與者提供了破壞容器的更簡單途徑。
如何查找和修復容器安全運行時風險
與shift left security的概念一致,早期檢測是有效容器運行時安全的關鍵。理想情況下,企業(yè)應該在容器實例化發(fā)生之前就檢測到威脅。然而,這并不總是實用的。這就是運行時掃描和威脅檢測發(fā)揮作用的地方。一旦檢測到威脅,理想的情況是它會以智能限制誤報的方式自動修復。對于其余情況,應迅速提醒安全專業(yè)人員采取糾正措施。
5 個運行時容器安全最佳實踐
以下五個最佳實踐可以幫助企業(yè)有效發(fā)現(xiàn)和修復容器運行時安全風險。
僅運行受信任的容器鏡像:僅運行來自安全存儲庫的受信任容器鏡像可以限制實例化不安全鏡像的風險。
實施持續(xù)漏洞掃描:時間點安全檢查很有用,但還不夠。為了領先于不斷變化的威脅,企業(yè)應該持續(xù)掃描工作負載以進行實時威脅檢測。
以低權(quán)限用戶運行容器:企業(yè)應避免以 root 用戶身份或使用Docker –privileged 標志運行容器。通常,容器不需要 root 訪問主機環(huán)境,因此使用 root 違反了最小特權(quán)原則。同樣,–privileged 標志繞過重要的安全控制。
不要啟用可寫文件系統(tǒng):容器通常是短暫的。啟用可寫文件系統(tǒng)為攻擊者編寫和執(zhí)行惡意代碼創(chuàng)造了可能性。
集中和自動化可見性和策略執(zhí)行:手動監(jiān)控和保護容器是不可擴展的。它還容易出現(xiàn)人為錯誤。企業(yè)應該盡可能利用工具來集中和自動化容器安全和策略的可見性。
有效的容器運行時安全需要整體方法
容器運行時安全性并不存在于真空中。例如,IaC 安全性和容器運行時安全性是齊頭并進的。為了保持強大的安全態(tài)勢,企業(yè)需要實施在整個軟件開發(fā)生命周期 (SDLC) 中集成安全性的整體解決方案。這意味著能夠跨云實現(xiàn)企業(yè)范圍的可見性和安全性并在企業(yè)運行容器的任何地方提供安全性的工具對于現(xiàn)代工作負載和運行時保護至關重要。